#ifndef GAMEWIDGET_H
#define GAMEWIDGET_H

#include <QWidget>
#include <QTimer>
#include <QKeyEvent>
#include <QPainter>
#include <QList>

class GameWidget : public QWidget {
    Q_OBJECT
public:
    explicit GameWidget(QWidget *parent = 0);  // 构造函数

protected:
    void paintEvent(QPaintEvent *event);       // 绘制界面
    void keyPressEvent(QKeyEvent *event);      // 键盘事件处理

private slots:
    void updateGame();  // 游戏状态更新

private:
    enum Direction { Up, Down, Left, Right };

    // 游戏核心数据
    QTimer *timer;
    QList<QPoint> snake;  // 蛇身坐标队列
    QPoint food;          // 食物坐标
    Direction direction;  // 当前移动方向
    bool isSpeedUp;       // 是否加速状态
    int gridSize;         // 网格尺寸（像素）

    // 游戏控制方法
    void initGame();       // 初始化游戏
    void generateFood();   // 随机生成食物
    bool checkCollision(); // 碰撞检测
    void gameOver();       // 结束游戏
};

#endif // GAMEWIDGET_H
